Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.
COBOL manipule des données de manière très explicite : on définit des zones mémoire, puis on y écrit des valeurs. Cette leçon vous aide à distinguer les types de données courants, les littéraux (valeurs écrites en dur) et les constantes figuratives qui servent à remplir rapidement des champs.
Elles représentent des quantités : entiers, décimaux, valeurs signées.
Elles sont souvent décrites par une clause PIC adaptée.
Elles peuvent contenir lettres, chiffres et symboles. C’est le format “généraliste” très utilisé pour noms, références, codes mixtes.
Elles sont prévues pour contenir uniquement des lettres (selon les règles de l’environnement). On les rencontre moins souvent, mais elles existent dans la logique de typage.
Un littéral est une constante directement écrite dans le code : c’est une valeur “immédiate” utilisée pour affecter une zone, afficher un texte, comparer une donnée, etc.
Ils sont entourés de guillemets. Ils servent à représenter du texte ou des valeurs mixtes.
DISPLAY "Bonjour !".
MOVE "A12B" TO WS-CODE.
Ils représentent un nombre : entier, décimal, parfois signé selon la syntaxe utilisée.
MOVE 123 TO WS-NB.
MOVE 3.14 TO WS-PI.
Vous pouvez aussi définir une constante nommée (une valeur fixe, réutilisable) plutôt que de recopier le même nombre partout. Cela améliore la lisibilité et évite les incohérences.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-PI-VALEUR CONSTANT AS 3.14.
Les constantes figuratives sont des valeurs “spéciales” déjà connues du langage. Elles servent notamment à écrire la même valeur partout dans une zone : mettre un champ à zéro, le remplir d’espaces, ou le placer à une valeur extrême (mini/maxi).
| Constante figurative | Effet général | Exemple d’usage |
|---|---|---|
ZERO ,
ZEROES ,
ZEROS
|
Met à zéro | Initialiser un compteur, un montant, un champ numérique |
SPACE ,
SPACES
|
Remplit d’espaces | Nettoyer un libellé avant de l’affecter |
HIGH-VALUE ,
HIGH-VALUES
|
Valeur la plus grande pour le type | Marqueur “fin” dans certaines logiques de comparaison/tri |
LOW-VALUE ,
LOW-VALUES
|
Valeur la plus petite pour le type | Marqueur “début” ou “minimal” dans certaines comparaisons |
Exemple simple : mettre un champ de paie à zéro (tous les caractères / positions deviennent “zéro”). Cela évite des valeurs résiduelles en mémoire quand on réutilise une zone.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-PAIE PIC 9( 7 ).
01 WS-LIBELLE PIC X( 20 ).
PROCEDURE DIVISION.
MOVE ZEROS TO WS-PAIE.
MOVE SPACES TO WS-LIBELLE.
DISPLAY WS-PAIE.
DISPLAY WS-LIBELLE.
STOP RUN.
Pour apprendre vite, prenez l’habitude d’initialiser systématiquement vos zones au début d’un traitement :
les numériques avec ZEROS et les textes avec SPACES .
Vous évitez ainsi les “restes” de mémoire et vous rendez vos tests beaucoup plus fiables.